package com.hncc.dms.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hncc.pms.domain.PmsPatient;
import com.hncc.sms.domain.SysDeptManager;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 就诊(门诊)信息对象 dms_registration
 *
 * @author ruoyi
 * @date 2020-09-04
 */
@ApiModel(value = "就诊(门诊)信息实体")
public class DmsRegistration extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @ApiModelProperty(value = "ID", required = false)
    private Long id;

    /**
     * 患者ID
     */
    @ApiModelProperty(value = "患者ID", required = false)
    @Excel(name = "患者ID")
    private Long patientId;

    /**
     * 诊断状态
     */
    @ApiModelProperty(value = "诊断状态", required = false)
    @Excel(name = "诊断状态")
    private Integer endAttendance;

    /**
     * 状态1待诊,2就诊中,3诊毕,4已退号
     */
    @ApiModelProperty(value = "状态1待诊,2就诊中,3诊毕,4已退号", required = false)
    @Excel(name = "状态1待诊,2就诊中,3诊毕,4已退号")
    private Integer status;

    /**
     * 排班ID
     */
    @ApiModelProperty(value = "排班ID", required = false)
    @Excel(name = "排班ID")
    private Long skdId;

    /**
     * 是否需要病历本1:需要,0:不需要
     */
    @ApiModelProperty(value = "是否需要病历本1:需要,0:不需要", required = false)
    @Excel(name = "是否需要病历本1:需要,0:不需要")
    private Integer needBook;

    /**
     * 绑定状态
     */
    @ApiModelProperty(value = "绑定状态", required = false)
    @Excel(name = "绑定状态")
    private Integer bindStatus;

    /**
     * 科室ID
     */
    @ApiModelProperty(value = "科室ID", required = false)
    @Excel(name = "科室ID")
    private Long deptId;

    /**
     * 就诊日期
     */
    @ApiModelProperty(value = "就诊日期", required = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "就诊日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date attendanceDate;

    /**
     * 就诊年龄
     */
    @ApiModelProperty(value = "就诊年龄", required = false)
    @Excel(name = "就诊年龄")
    private String patientAgeStr;

    /**
     * 病人实体（一对一）
     */
    private PmsPatient pmsPatient;

    /**
     * 科室实体（一对一）
     */
    private SysDeptManager sysDeptManager;

    /**
     * 发票号
     */
    private Long invoiceNo;

    /**
     * 总金额
     */
    private BigDecimal price;

    /**
     * 支付id
     */
    private Long settlement;

    public PmsPatient getPmsPatient() {
        return pmsPatient;
    }

    public void setPmsPatient(PmsPatient pmsPatient) {
        this.pmsPatient = pmsPatient;
    }

    public SysDeptManager getSysDeptManager() {
        return sysDeptManager;
    }

    public void setSysDeptManager(SysDeptManager sysDeptManager) {
        this.sysDeptManager = sysDeptManager;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setPatientId(Long patientId) {
        this.patientId = patientId;
    }

    public Long getPatientId() {
        return patientId;
    }

    public void setEndAttendance(Integer endAttendance) {
        this.endAttendance = endAttendance;
    }

    public Integer getEndAttendance() {
        return endAttendance;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getStatus() {
        return status;
    }

    public void setSkdId(Long skdId) {
        this.skdId = skdId;
    }

    public Long getSkdId() {
        return skdId;
    }

    public void setNeedBook(Integer needBook) {
        this.needBook = needBook;
    }

    public Integer getNeedBook() {
        return needBook;
    }

    public void setBindStatus(Integer bindStatus) {
        this.bindStatus = bindStatus;
    }

    public Integer getBindStatus() {
        return bindStatus;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setAttendanceDate(Date attendanceDate) {
        this.attendanceDate = attendanceDate;
    }

    public Date getAttendanceDate() {
        return attendanceDate;
    }

    public void setPatientAgeStr(String patientAgeStr) {
        this.patientAgeStr = patientAgeStr;
    }

    public String getPatientAgeStr() {
        return patientAgeStr;
    }

    public Long getInvoiceNo() {
        return invoiceNo;
    }

    public void setInvoiceNo(Long invoiceNo) {
        this.invoiceNo = invoiceNo;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public Long getSettlement() {
        return settlement;
    }

    public void setSettlement(Long settlement) {
        this.settlement = settlement;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("patientId", getPatientId())
                .append("createTime", getCreateTime())
                .append("endAttendance", getEndAttendance())
                .append("status", getStatus())
                .append("skdId", getSkdId())
                .append("needBook", getNeedBook())
                .append("bindStatus", getBindStatus())
                .append("deptId", getDeptId())
                .append("attendanceDate", getAttendanceDate())
                .append("patientAgeStr", getPatientAgeStr())
                .append("invoiceNo",getInvoiceNo())
                .append("price",getPrice())
                .append("settlement",getSettlement())
                .toString();
    }
}
